/////////////////////////////////////////////     File     //////////////////////////////////////////////////
// Author: James Chen
// Filename: BattleSim.h
// Created: Friday, April 13, 2012 2:24:19 PM
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
#pragma once

#include "UNITDATA.h"
#include "Round.h"

/////////////////////////////////////////////     Class     /////////////////////////////////////////////////
// Name: BattleSim
// Author: James Chen
// Created: Friday, April 13, 2012 2:24:19 PM
//
// Purpose: Battle Simulator for The Settlers Online: Castle Empire
//
// Revisions: 
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
class BattleSim
{
	////////////////////// Singleton Implementation Begins //////////////////////
private:

	BattleSim(void);
	BattleSim(const BattleSim&);
	BattleSim& operator =(const BattleSim&);
	static BattleSim *m_pInstance;

public:

	virtual ~BattleSim(void);
	static BattleSim *GetInstance(void);
	static void DeleteInstance(void);
	/////////////////////// Singleton Implementation Ends ///////////////////////

private:

	list<UNITDATA> PlayerFirst;
	list<UNITDATA> PlayerNormal;
	list<UNITDATA> PlayerLast;

	list<UNITDATA> EnemyFirst;
	list<UNITDATA> EnemyNormal;
	list<UNITDATA> EnemyLast;

	UNITDATA Recruit;
	UNITDATA Soldier;
	UNITDATA Wolf;

public:
	
	void LoadPlayerUnits();
	void LoadEnemyUnits();
	void CreateRound();

	void Display();

	void InitializePlayerTypes();
	void ClearData();

};